#include<bits/stdc++.h>

using namespace std;
using ll = long long;
#define endl '\n'
ll dp[26][26];

/**
 * 把m个苹果 放入N个盘子
 * @param m 苹果数量
 * @param n 盘子数量
 * @return 不考虑顺序的方案数
 */
ll f(int m, int n) {
    if (dp[m][n] != 0)return dp[m][n];
    if (m <= 1 || n == 1)return dp[m][n] = 1;//递归终点
    if (m < n)return dp[m][n] = f(m, m);//必然会存在n-m个以上的空盘子
    return dp[m][n] = f(m, n - 1)//至少有一个空盘子方案
                      + f(m - n, n);//没有一个空盘子的方案

}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int T;
    cin >> T;
    while (T--) {
        int m, n;
        cin >> m >> n;
        cout << f(m, n) << endl;
    }
    return 0;
}
